package com.yh.dao;

import com.yh.entity.Orderinfo;

import java.util.List;

/**
 * @author yuhuan
 * @date 2022/01/13
 */
public interface OrderDao {
    /**
     * 查询所有的订单
     *
     * @return 返回查询的结果集
     */
    public List<Orderinfo> findOrderAll();

    /**
     * 根据订单ID查询订单
     *
     * @param orderId 订单的ID
     * @return 返回查询的结果信息
     */
    public Orderinfo findOrderByOrderId(String orderId);

    /**
     * 根据用户ID查询所有订单
     *
     * @param userId 用户ID
     * @return 查询的结果集
     */
    public List<Orderinfo> findOrderByUserId(String userId);

    /**
     * 根据日程查找订单
     *
     * @param scheduleId 日程ID
     * @return 所有的查找结果
     */
    public List<Orderinfo> findOrderByScheduleId(int scheduleId);

    /**
     * 根据订单的状态查询订单
     *
     * @param orderState 订单的状态
     * @return 返回查询的结果集
     */
    public List<Orderinfo> findOrderByOrderState(int orderState);

    /**
     * 添加新订单
     *
     * @param orderinfo 需要添加的订单信息
     * @return 添加成功的总记录数
     */
    public int addOrder(Orderinfo orderinfo);

    /**
     * 根据订单ID删除订单(虚假的删除，将订单的状态位修改为删除)
     *
     * @param orderId 订单的ID
     * @return 返回删除的总记录数
     */
    public int recordInertOrderByOrderId(String orderId);

    /**
     * 根据订单ID删除订单(真实的删除)
     *
     * @param orderId 订单的ID
     * @return 返回删除的总记录数
     */
    public int deleteByOrderId(String orderId);

    /**
     * 根据日程ID删除订单(真实的删除)
     *
     * @param scheduleId 影厅的ID
     * @return 返回删除的总记录数
     */
    public int deleteByScheduleId(int scheduleId);

    /**
     * 根据订单ID修改订单的状态
     *
     * @param order 需要修改的订单信息
     * @return 返回修改的总记录数
     */
    public int updateOrderStateById(Orderinfo order);
}
